
function get(url, params, callback, type = null, headers = {})
{

    // 一、创建xhr对象
    const xhr = new XMLHttpRequest
    // 二、监控请求状态
    xhr.onreadystatechange = () => {
        // 判断是否返回数据
        if (xhr.readyState === 4) 
        {
            // 判断返回的状态
            if (xhr.status === 200) 
            {
                // 获取数据
                let res = xhr.responseText
                if (type === 'json') res = JSON.parse(res)
                callback(res)
            } else {
                console.log('瑕疵：', xhr.status)
            }
        }
    }
    // 1-遍历对象
    for (let key in params)
    {
        temp.push(`${key}=${params[key]}`)
    }
    xhr.open('get', `${url}?${temp.join('&')}`)
    for (let key in headers)
    {
        xhr.setRequestHeader(key, headers[key])
    }
    // 四、发送
    xhr.send(null)
 
}
 



function post(url, params, callback, type = null, headers = {})   
{
    // 一、创建xhr对象
    const xhr = new XMLHttpRequest
    // 二、监控请求状态
    xhr.onreadystatechange = () => {
        // 判断是否返回数据
        if (xhr.readyState === 4) 
        {
            // 判断返回的状态
            if (xhr.status === 200) 
            {
                // 获取数据
                // let res = JSON.parse(xhr.responseText)
                let res = xhr.responseText
                if (type==='json') res = JSON.parse(res)
                // 不同逻辑处理（n行代码）
                callback(res)
            } else {
                console.log('瑕疵：', xhr.status)
            }
        }
    }
    // 三、设置请求方式、请求地址
    xhr.open('post', url)
    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded') 
    for (let key in headers)
    {
        xhr.setRequestHeader(key, headers[key]) 
    }
    // 四、发送
    let temp = []
    // 2 遍历对象
    for (let key in params)
    {
        temp.push(`${key}=${params[key]}`)  
    }
    xhr.send(temp.join('&'))
}
